package com.yqyd.nbot.service.impl;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yqyd.nbot.mapper.NbotActivityRegistrationsMapper;
import com.yqyd.nbot.domain.NbotActivityRegistrations;
import com.yqyd.nbot.service.INbotActivityRegistrationsService;

/**
 * 九号 - 活动报名Service业务层处理
 * 
 * @author Dhq
 * @date 2025-08-25
 */
@Service
public class NbotActivityRegistrationsServiceImpl implements INbotActivityRegistrationsService 
{
    @Autowired
    private NbotActivityRegistrationsMapper nbotActivityRegistrationsMapper;

    /**
     * 查询九号 - 活动报名
     * 
     * @param id 九号 - 活动报名主键
     * @return 九号 - 活动报名
     */
    @Override
    public NbotActivityRegistrations selectNbotActivityRegistrationsById(Long id)
    {
        return nbotActivityRegistrationsMapper.selectNbotActivityRegistrationsById(id);
    }


    /**
     * 查询九号 - 活动报名列表
     *
     * @param activityId 活动ID
     * @return 九号 - 活动报名集合
     */
    @Override
    public List<NbotActivityRegistrations> selectNbotActivityRegistrationsListByActivityId(Long activityId){
        return nbotActivityRegistrationsMapper.selectNbotActivityRegistrationsListByActivityId(activityId);
    }


    /**
     * 查询九号 - 活动报名列表
     * 
     * @param nbotActivityRegistrations 九号 - 活动报名
     * @return 九号 - 活动报名
     */
    @Override
    public List<NbotActivityRegistrations> selectNbotActivityRegistrationsList(NbotActivityRegistrations nbotActivityRegistrations)
    {
        return nbotActivityRegistrationsMapper.selectNbotActivityRegistrationsList(nbotActivityRegistrations);
    }

    /**
     * 新增九号 - 活动报名
     * 
     * @param nbotActivityRegistrations 九号 - 活动报名
     * @return 结果
     */
    @Override
    public int insertNbotActivityRegistrations(NbotActivityRegistrations nbotActivityRegistrations)
    {
        return nbotActivityRegistrationsMapper.insertNbotActivityRegistrations(nbotActivityRegistrations);
    }

    /**
     * 修改九号 - 活动报名
     * 
     * @param nbotActivityRegistrations 九号 - 活动报名
     * @return 结果
     */
    @Override
    public int updateNbotActivityRegistrations(NbotActivityRegistrations nbotActivityRegistrations)
    {
        if(nbotActivityRegistrations.getRegistrationStatus() == 2) {
            // 已报名状态
            nbotActivityRegistrations.setConfirmedAt(new Date());
        }
        return nbotActivityRegistrationsMapper.updateNbotActivityRegistrations(nbotActivityRegistrations);
    }

    /**
     * 查询用户是否已报名
     * @param activityId 活动ID
     * @param userId 用户ID
     * @return true:已报名 false:未报名
     *
     */
    @Override
    public Boolean selectUserJoined(Long activityId,Long userId){
        return nbotActivityRegistrationsMapper.selectUserJoined(activityId,userId);
    }

    /**
     * 查询用户报名的对象
     * @param activityId 活动ID
     * @param userId 用户ID
     * @return 九号 - 活动报名
     *
     */
    @Override
    public NbotActivityRegistrations selectNbotActivityRegistrationsByActivityIdAndUserId(Long activityId,Long userId){
        return nbotActivityRegistrationsMapper.selectNbotActivityRegistrationsByActivityIdAndUserId(activityId,userId);
    }


    /**
     * 批量删除九号 - 活动报名
     * 
     * @param ids 需要删除的九号 - 活动报名主键
     * @return 结果
     */
    @Override
    public int deleteNbotActivityRegistrationsByIds(Long[] ids)
    {
        return nbotActivityRegistrationsMapper.deleteNbotActivityRegistrationsByIds(ids);
    }

    /**
     * 删除九号 - 活动报名信息
     * 
     * @param id 九号 - 活动报名主键
     * @return 结果
     */
    @Override
    public int deleteNbotActivityRegistrationsById(Long id)
    {
        return nbotActivityRegistrationsMapper.deleteNbotActivityRegistrationsById(id);
    }
}
